package com.ashin;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 前提条件
 * 1. 搭建mysql主从服务
 * <p>
 *    说明： 读写分离的实现方式有多种,比如使用mycat、sharding-jdbc等框架，本demo是基于aop和AbstractRoutingDataSource手动实现
 * 读写分离的实现
 * 未实现读写分离，读写数据库的流程 获取dataSource->获取 connection-> 执行sql
 * <p>
 * 读写分离，获取一个特殊的dataSource(AbstractRoutingDataSource) ->获取connection->执行sql
 * AbstractRoutingDataSource的功能就是能够根据上下文来决定是否使用主还是从的databaseSource去获取connnection
 *
 * 参考文献
 * https://blog.csdn.net/KIMTOU/article/details/121570095
 */
@SpringBootApplication
public class TestMybatisRwSplitApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestMybatisRwSplitApplication.class, args);
    }

}
